
#ifdef FLASH_CODE_HEADER

static const uint32_t flash_code_STM32G0XX_OTP[41] = 
{
    0XE00ABE00,0X062D780D,0X24084068,0XD3000040,0X1E644058,0X1C49D1FA,0X2A001E52,0X4770D1F2,
    0X8F4FF3BF,0X481B4770,0X60814919,0X6081491A,0X6101491A,0X47702000,0X49162001,0X614807C0,
    0X47702000,0X47702001,0X47702000,0X1DC9B5F0,0X08C94C10,0X00C94D11,0X26016125,0XE0132700,
    0X68136166,0X68536003,0XF3BF6043,0X69238F4F,0XD4FC03DB,0X69236167,0XD002422B,0X20016125,
    0X3008BDF0,0X32083908,0XD1E92900,0XBDF02000,0X45670123,0X40022000,0XCDEF89AB,0X0000C3FA,
    0X00000000,
};

static const program_target_t flash_algo_STM32G0XX_OTP =
{
    0X20000027,  // Init
    0X20000039,  // UnInit
    0X20000020,  // EraseChip
    0X20000049,  // EraseSector
    0X2000004D,  // ProgramPage

    {
        0x20000001,  // BKPT : start of blob + 1
        0x20000C00,  // RSB  : address to access global/static data
        0x20001000,  // RSP  : stack pointer 
    },

    0x20000400,                      // mem buffer location
    0x20000000,                      // location to write prog_blob in target RAM
    sizeof(flash_code_STM32G0XX_OTP),       // prog_blob size
    flash_code_STM32G0XX_OTP,               // address of prog_blob 
    0x00000400,                      // ram_to_flash_bytes_to_be_written
};

#endif

#ifdef FLASH_CODE_TABLE
&flash_algo_STM32G0XX_OTP
#endif

